package ArrayClass;

/*
移动零
给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
请注意，必须在不复制数组的情况下原地对数组进行操作。

示例 1:
输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]
示例 2:
输入: nums = [0]
输出: [0]

作者：LeetCode
链接：https://leetcode.cn/leetbook/read/all-about-array/x9rh8e/
 */

public class _11移动零 {
    public static void main(String[] args) {

    }

    //经典快慢双指针
    class Solution {
        public void moveZeroes(int[] nums) {
            if (nums.length < 2){
                return;
            }
            int left = 0,right = 0;
            while (right < nums.length){
                if (nums[right] != 0){
                    int temp = nums[right];
                    nums[right] = nums[left];
                    nums[left] = temp;
                    left++;
                }
                right++;
            }
        }
    }
}
